A typical approach to software development involves the use of a modelling language to document the result of analysing a problem domain to define a set of requirements in order to design a solution.
For each aspect of the problem and solution, different modelling languages are used. The syntax of these modelling languages is defined in a meta-model. One such meta-model can be a meta-model which defines the manner in which business requirements are specified. Another meta-model may be one which defines the manner in which the data aspects of a problem domain are specified.
When designing a solution, using modelling techniques, a model driven approach results in the creation of numerous models having different meta-models. Within both of these types of models there are numerous model elements, with each model element having one or many relationships of different types with other model elements in the same or different models.
Although having many models allows a person to visualise many different aspects of a problem domain and at many different levels, the large number of models are very difficult to maintain. Thus, it is often necessary to partition the models so that the maintenance load can be spread among the members of a team.
There are many partitioning strategies which can be used to partition aspects of one or more models. Whichever strategy is used, semantic and syntactic consistency must be maintained.
A standard approach to analysing models treats the models as cyclic directed graphs where each model element is treated uniformly. Using this approach to define a subset of a model leads to a larger set of models than required. Further, current analytical strategies assume that any element within the model need not be visited more than once. This approach does not allow for the fact that a model element when visited later on in an analytical process may have semantics that require previously visited, but discarded, model elements. Thus the end result is that it is not possible to create a minimum subset of a large set of models that retains syntactic and semantic consistency based on a chosen set of elements.